package com.example.pda.net;

import com.example.pda.data.Result;
import com.example.pda.data.model.GoodItem;
import com.example.pda.data.model.Inventory;
import com.example.pda.data.model.PurchaseOrder;
import com.example.pda.data.model.StoreBean;

import java.util.List;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Url;

public interface Api {

    // 1.获取单据接口
    // 接口说明：PDA主动请求NC实时获取到货单信息。
    // 接口地址：http://127.0.0.1:8088/nc/pda/list/{billType}
    @Headers({"Content-Type: application/json","Accept: application/json"})
    @POST
    Observable<Result<List<Inventory>>> getDjgListTest(@Url String url);

    // 1.获取单据接口
    // 接口说明：PDA主动请求NC实时获取到货单信息。
    // 接口地址：http://127.0.0.1:8088/nc/pda/list/{billType}
    @Headers({"Content-Type: application/json","Accept: application/json"})
    @POST("nc/pda/list/{billType}")
    Observable<Result<List<Inventory>>> getDjgList(@Path("billType") String billType);

    // 2.获取单据详情接口
    // 接口地址：http://127.0.0.1:8088/nc/pda/dataList/{djh}
    @Headers({"Content-Type: application/json","Accept: application/json"})
    @POST("nc/pda/dataList/{djh}")
    Observable<Result<List<GoodItem>>> getDjhItemByDjh(@Path("djh") String djh);

    // 3.上传库单接口
    // 接口地址：http://127.0.0.1:8088/nc/pda/saveBill
    // data	json字符串	string
    /*djh	到货单号	string	否
    billType	单据类型	string	否	23=到货单
                              5X=调拨订单
                           4455=材料出库单
    invcode	存货编码	string	否
    sl	入库数量	string	否
    pch	批次号	string	否
    gyspch	供应商批次号	string	否
    hwcode	货位id	string	否
    stockcode	仓库id	string	否*/
    @POST("nc/pda/saveBill")
    Observable<Result<String>> upload(@Body RequestBody body);

    // 4.实时库存
    // 接口地址：http://127.0.0.1:8088/nc/pda/getOnhandnum/{invcode}
    @Headers({"Content-Type: application/json","Accept: application/json"})
    @POST("nc/pda/getOnhandnum/{invcode}")
    Observable<Result<List<StoreBean>>> getOnhandnum(@Path("invcode") String invcode);

    // 5.采购订单
    // 接口地址：http://127.0.0.1:8088/nc/pda/getSoOrder/{ddh}
    @Headers({"Content-Type: application/json","Accept: application/json"})
    @POST("nc/pda/getSoOrder/{ddh}")
    Observable<Result<PurchaseOrder>> getSoOrder(@Path("ddh") String ddh);


    // 5.login
    @Headers({"Content-Type: application/json","Accept: application/json"})
    @POST("/nc/pda/login/{usercode}/{password}")
    Observable<Result<String>> login(@Path("usercode") String usercode,
                                            @Path("password") String password);
}
